﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.DataSourceInterface;
using DAL.Entities;
using DAL.DataSourceImplementation.DataSourceDB;
using DAL.DataSourceImplementation.HelpersDAO;

namespace DAL.DataSourceImplementation
{
    public class EmpresaDAO : BaseDAO<Empresa>, IEmpresaDAO
    {
        //VARIABLE PARA ALMACENAR EL NOMBRE DE LA LLAVE DE CONEXION
        private static string connName;

        /// CONSTRUCTOR QUE RECIBE LA LLAVE DE CONEXION DESDE EL DATAACCESS
        /// <param name="_connName">Nombre de la llave de conexion</param>
        public EmpresaDAO(string _connName)
        {
            connName = _connName;
        }

        //Desarrollo de métodos
        public List<Empresa> GetEmpresas(int? pageIndex, int? pageSize, out int total)
        {
            if (pageIndex < 1 || pageSize < 1)
            {
                throw new Exception("");
            }

            int pIndex = pageIndex.GetValueOrDefault();
            int pSize = pageSize.GetValueOrDefault();
            total = 0;

            List<Empresa> listEmpresa = new List<Empresa>();
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                listEmpresa = db.Empresa.Where(e => e.BEMP_ESTADO == true).ToList();

                if (pIndex > 0 && pSize > 0)
                {
                    total = listEmpresa.Count();
                    listEmpresa = PageResult(listEmpresa, pIndex, pSize, total);
                }
            }

            return listEmpresa;
        }
    }
}
